package com.buercorp.wangyu.Stream;

import java.util.*;

/**
 * 不可变集合
 * 一旦创建完毕之后，是无法进行修改的 在集合中添加元素和删除元素，都会报错 只能查询集合中的元素
 * List Set Map
 * @author 忆白
 */
public class ListSet {
    public static void main(String[] args) {
        // List.of() 创建一个不可变集合
        List<Object> list = List.of("1","2","3","4","5");
        // 遍历集合
        for (Object li : list) {
            System.out.print(li);
        }
        Iterator<Object> it = list.iterator();
        while (it.hasNext()) {
            System.out.print(it.next());
        }
        // 添加元素
        //list.add("6"); // 报错
        // 删除元素
        //list.remove("1"); // 报错

        System.out.println("-------------------");

        // Set创建一个不可变集合
        // 元素不能重复
        Set<Object> set = Set.of("1","2","3","4","5");
        // 遍历集合
        for (Object li : set) {
            System.out.print(li);
        }
        Iterator<Object> it1 = set.iterator();
        while (it1.hasNext()) {
            System.out.print(it1.next());
        }
        // 添加元素
        //set.add("6"); // 报错
        // 删除元素
        //set.remove("1"); // 报错


        System.out.println("-------------------");

        // Map创建一个不可变集合
        HashMap<Object, Object> hm = new HashMap<>();
        hm.put("1","2");
        hm.put("2","3");
        hm.put("3","4");
        hm.put("4","5");
        hm.put("5","6");

        Map<Object, Object> map = Map.copyOf(hm);
        for (Object li : map.keySet()) {
            System.out.print(li);
        }

        Iterator<Object> it2 = map.keySet().iterator();
        while (it2.hasNext()) {
            System.out.print(it2.next());
        }

        // 添加元素
        map.put("6","7"); // 报错
        // 删除元素
        map.remove("1"); // 报错
    }
}
